Soru & Cevap

Android Geri Sayım Sayacı (Gün Saymalı)

26.03.2016 - 03:28

Merhaba,

Üzerinde çalıştığım bir uygulamada veritabanına bazı bilgileri eklerken beraberinde geri sayım yapmasını istiyorum.

Uzun süreler saydırmak istiyorum dolayısıyla dakika ve saniyeler çok yer kaplar o yüzden sadece gün saydırmalıyım ve tabiki uygulama çalışmıyor olsa bile saymaya devam etmelidir.

Örn: Bilgi1'i ekledim ve bir listview yada textview ile görüntüledim ve beraberinde 8 aydan geri saymasını istedim (ortalama 240gün). Her gün bir adet gün düşmeli.

Bunu countdown timer ile sanıyorum yapamam. Broadcast servis ile yapılabileceğini duydum fakat bununla ilgili yeterli bilgiye sahip değilim. Belkide başka bir yöntem gerekiyodur bilmiyorum.

Yardımcı olabilirseniz sevinirim. 

655 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-46518-1428343928.jpg
halitpeker
28.03.2016 - 12:01

Kendi kullandıgım şekli anlatayım. Ben tarihi yyyy-mm-dd seklinde olarak kaydediyorum. 

Daha sonra orada kayıtlı gunu alıp bugunden cıkarırsam bana kalan günü veriyor.

DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date basTarih = new Date();
Date bitTarih = new Date();

basTarih = formatter.parse(kayıttarihi);
bitTarih = formatter.parse(bugunkitarih);

Long fark=(basTarih.getTime() - bitTarih.getTime())

Bu fark sana saniye olarak fark verecektir. Bunu bölme işlemi yaparak güne çevirebilirsin.

Bugunun tarihini alma :

    public static String gununTarihi() {
        Calendar cal = Calendar.getInstance();
        SimpleDateFormat Tarih = new SimpleDateFormat("yyy-MM-dd");
        return Tarih.format(cal.getTime());
    }

 

Emre Taşbaş
28.03.2016 - 01:27
Anladım bu şekilde olduğunda bir servis gibi çalışıp kendisi ertesi güne farkı 1 azaltacak sanırım. Bugünün tarihini almayı bende aynı şekilde yapıyorum. Farkı saniye olarak vermesi bir kasmaya yol açmaz diye umuyorum inşallah :) Çünkü çok fazla hesap yapıyormuş gibi geliyor saniye olarak verince. Çok teşekkürler, deneyip bilgilendiricem.
Halit Peker
28.03.2016 - 03:35
Saniye dakika almayabilirsin gün olarak yapacağın için bu senın işini görecektir. Kendimde farklı bir iş için kullanıyorum gün farklını acrivity acılırken otomatık hesap yapıp verecektır kasma yapacagını sanmam.
Emre Taşbaş
28.03.2016 - 03:40
Teşekkürler güzel bilgiler için
picture-46518-1428343928.jpg
halitpeker
26.03.2016 - 04:12

Merhaba sorunu tam anlamadım. Şimdi listview bi satır ekeldın yanında kaç gun kaldıgını mı gormek istiyorsan.Eğer böyleyse satır ekeldıgın verıtabanı tablona eklenen tarih alanı koyarsan listeyi getirdiğinde o tarıhdfen su ankı tarıhı cıkarıp gunu yazıdrabılrısın.

Emre Taşbaş
26.03.2016 - 04:59
Merhaba, aslında tam olarak yakın birşeyden bahsediyorum. Bir nesne ekledim diyelim, örneğin bu nesnenin ömrü 6 ay yani 180 gün. Nesneyi bugün ekledim diyelim. Listeye bugün bakarsam 180 görünecek. Yarın bakarsam 179 .. 178.. 177 şeklinde gün gün geri saymak istiyorum. Veritabanımda bir tarih tutuyorum ama calender sınıfından çektiğim bir takvim bu. Orda gün ay yıl şeklinde çektiği için sıkıntı olabilir. Benim tamamını güne dönüştürüp geri saydırmam gerekiyor.
Halit Peker
28.03.2016 - 12:00
Kendi kullandıgım şekli anlatayım. Ben tarihi yyyy-mm-dd seklinde olarak kaydediyorum. Daha sonra orada kayıtlı gunu alıp bugunden cıkarırsam bana kalan günü veriyor. DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Date basTarih = new Date(); Date bitTarih = new Date(); basTarih = formatter.parse(kayıttarihi); bitTarih = formatter.parse(bugunkitarih); Long fark=(basTarih.getTime() - bitTarih.getTime()) Bu fark sana saniye olarak fark verecektir. Bunu bölme işlemi yaparak güne çevirebilirsin. Bugunun tarihini alma : public static String gununTarihi() { Calendar cal = Calendar.getInstance(); SimpleDateFormat Tarih = new SimpleDateFormat("yyy-MM-dd"); return Tarih.format(cal.getTime()); }